/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.giant.bean.parametrics;

import com.giant.entities.InColor;
import com.giant.entities.InInventory;
import com.giant.entities.InOpCen;
import com.giant.entities.InSize;
import com.giant.services.parametrics.ServiceInventoryLocal;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

/**
 *
 * @author taticay
 */
@ManagedBean
@SessionScoped
public class InventoryBean implements Serializable {

    /**
     * Relación con la interfaz que provee los servicios necesarios del vendedor
     */
    @EJB
    private ServiceInventoryLocal serviceInventory;
    private String param = "";
    private List<InInventory> allInventories;
    //-----------------------------------------------------------
    // Atributos
    //-----------------------------------------------------------
    /**
     * Representa un nuevo vendedor a ingresar
     */
    private InInventory inventory = new InInventory();
    private InOpCen opCen = new InOpCen();
    private InColor color = new InColor();
    private InSize size = new InSize();
    private List<InInventory> tempDetailOrder;

    //-----------------------------------------------------------
    // Getters y setters
    //-----------------------------------------------------------
    public InventoryBean() {
    }

    /**
     * Devuelve el objeto de vendedor actual
     *
     * @return vendedor Vendedor actual
     */
    public InInventory getInInventory() {
        return inventory;
    }

    /**
     * Modifica al vendedor actual
     *
     * @param vendedor Nuevo vendedor
     */
    public void setInventory(InInventory inventory) {
        this.inventory = inventory;
    }

    /**
     * Devuelve todos los vendedores del sistema
     *
     * @return vendedores Lista con todos los vendedores del sistema
     */
    public List<InInventory> getInventories() {
        if (allInventories == null) {
            allInventories = serviceInventory.getInventory();
        }
        return allInventories;
    }

    /**
     * Devuelve el objeto actual de experiencia vendedor
     *
     * @return experiencia Objeto de la experiencia del vendedor actual
     */
    public InOpCen getOpCen() {
        return opCen;
    }

    /**
     * Modifica la experiencia del vendedor actual
     *
     * @param experiencia Nueva experiencia del vendedor
     */
    public void setOpCen(InOpCen opCen) {
        this.opCen = opCen;
    }

    public void setPurchasePrice(int price) {
        this.inventory.setPurchasePrice(price);
    }

    /**
     * Devuelve el objeto actual de experiencia vendedor
     *
     * @return experiencia Objeto de la experiencia del vendedor actual
     */
    public InColor getColor() {
        return color;
    }

    /**
     * Modifica la experiencia del vendedor actual
     *
     * @param experiencia Nueva experiencia del vendedor
     */
    public void setColor(InColor color) {
        this.color = color;
    }

    /**
     * Devuelve el objeto actual de experiencia vendedor
     *
     * @return experiencia Objeto de la experiencia del vendedor actual
     */
    public InSize getSize() {
        return size;
    }

    /**
     * Modifica la experiencia del vendedor actual
     *
     * @param experiencia Nueva experiencia del vendedor
     */
    public void setSize(InSize size) {
        this.size = size;
    }

    public void handleCityChange(String sql, String param) {
        System.out.println("entro");
        System.out.println(this.param);
        Map<String, String> map = new HashMap<String, String>();
        map.put(param, this.param);

        allInventories = this.serviceInventory.getInventoryFilter(sql, map);

    }

    public String getParam() {
        return param;
    }

    public void setParam(String param) {
        this.param = param;
    }

    public void addTempDetailOrder(InInventory inv) {
        if (tempDetailOrder == null) {
            tempDetailOrder = new ArrayList<InInventory>();
        }

        tempDetailOrder.add(inv);
        System.out.println("list size: " + tempDetailOrder.size());
    }
}
